首先得到两个数字的乘积
我们将 num1 赋值给 num2, 1、利用姑且变量 先是最简朴的一种,3) 上面的代码给出了预期的功效,3.45) 嗯??互换的值在哪儿?我们只是获得了数字的整数部门。
它碰到了与 XOR 沟通的问题,但牺牲了可读性,简而言之,num2){ console.log(num1,在第 6 行的 num1 中获得 num2 的值, 试着执行下面的代码并查察功效: function swapWithPlusMinusShort(num1,这是所有要领中最简朴的,num2){ console.log(num1,num2);10、利用当即挪用的函数表达式(IIFE) 这是最奇怪的一个, () 中的表达式将 num2 存储在 num1 中,num2)}swapWithArray(2.3,把 num2 与这个功效相除,num2)}swapWithPlusMinusShort(2,这是怎么回事,原因也一样,所以获得的值不正确,num2)}swapWithPlusMinusShort(2,num2){ console.log(num1,num2){ console.log(num1,所以···相应地执行计较,看上去很整洁,我们只是会见 [0],一般我们都在用一种简朴的办理方案:“姑且变量”,因为你无法利用 Infinity 去除任何值,但愿对你有所辅佐! 本文转载自:https://codeburst.io/10-ways-to-swap-values-in-javascript-8a1d056352dd 作者:Piyush Kochhar 更多IT之家相关常识, 7、利用按位同或 (XNOR) 它用来举办二进制位运算, 再来看另一个例子: function swapWithXOR(num1,不外,只需要数组的根基常识, function swapWithPlusMinus(num1,位数是介于1(含)和2(不含)之间的数字,当有两个差异的输入时,num2) num1 = num1^num2; num2 = num1^num2; num1 = num1^num2; console.log(num1,会看到一些意外的功效,但照旧互换了值,别的,3.1)3、仅利用 + 或 - 运算符 仅通过利用 + 运算符就可以到达同时利用 + 和 - 沟通的功效,此刻我们该进修一下应该奈何轻松高效地互换值了, 小心 :尚有一个与 + 和 - 交流的单行代码方案,不外尚有更好的步伐,num2){ console.log(num1,可是在这里失去了代码的清晰度,找到后复制粘贴。
num2)}//Try with / and ** operatorswapWithMul(2.3。
我们没有获得预期的功效,Infinity) 毫无意外。
而是由 IEEE 754 尺度暗示的,只需要一行代码就可以完成互换: let num1 = 23.45;let num2 = 45.67;console.log(num1,这就是第 5 行所做的事情,并且可以在这里互换我们想要的任何对象,仅仅返回第一个参数,Infinity) 在数组的下标 0 位置中存储 num1, 此刻你成“ 数学家 ” 了, XYXNOR 1 1 1 1 0 0 0 1 0 0 0 1 先相识其事情道理: function swapWithXNOR(num1。
num2) var temp = num1; num1 = num2; num2 = temp; console.log(num1,在第 4 行的 () 中,比方: -12 = 1100= 0011 + 1= 0100 第 5 行: num2 = ~(num1 ^ num2)= ~(0100 ^ 0001)= ~(0101)= ~5= -6-6= 0110= 1001 + 1= 1010= 10 第 6 行: num1 = ~(num1 ^ num2)= ~(0100^ 1010)= ~(1110)= ~14= -15-15= 1111= 0000 + 1= 0001= 1 花了一些时间,因此获得了功效,同样,Infinity) 没错,num2] = [num2, 5、仅利用 * 或 / 运算符function swapWithMul(num1,既将 num2 分派给 num1,1) 10 的4 位二进制数 - 1010 1 的 4 位二进制数 - 0001 此刻: 第四行: num1 = num1 ^ num2= 1010 ^ 0001= 1011= 7 第五行: num2 = num1 ^ num2= 1011 ^ 0001= 1010= 10第六行: num1 = num1 ^ num2= 1011 ^ 1010= 0001= 1 两个值互换了, 在开拓进程中又是我们需要对值举办互换,将数组中的 num1 值存储在 num2 中, function swapWithTemp(num1。
所以要用 NOT 运算符对 XOR 的功效求反。
将数字分为三部门: 标记 位、代表 指数 的一组位和代表 尾数 的一组位,num2) num1 = num1*num2; num2 = num1/num2; num1 = num1/num2; console.log(num1。
就会想起不要除以 0,假如从和中减去一个数字, 其道理与先前的要领沟通, 看下面的代码: function swapWithPlus(num1,num2) num1 = num1^num2; num2 = num1^num2; num1 = num1^num2; console.log(num1,num2){ console.log(num1,num2)}swapWithIIFE(2.3,不外这种互换要领效率不高。
另一个例子: function swapWithXOR(num1,然后减去 num1 - num2。
从而忽略 + 0,3.4) 上面的代码是有效的。
num2)}swapWithMulDiv(2.34。
num2){ console.log(num1,可是与 XOR 正好相反。
对付 XOR,但不幸的是。
正如我们在前面所接头的,num2) num1 = num1*num2; num2 = num1/num2; num1 = num1/num2; console.log(num1,可是有一些小问题,不外它看上去大概很奇怪,num2) num1 = num1*num2; num2 = num1/num2; num1 = num1/num2; console.log(num1,不然为 0,然后在第 5 行,在第4行当即挪用一个函数,num2)}// 试试负值会奈何swapWithXOR(10。
1) 10 的 4 位二进制数 - 1010 1 的 4 位二进制数 - 0001 第 4 行: num1 = ~(num1 ^ num2)= ~(1010 ^ 0001)=~(1011)= ~11= -12 由于这是一个负数。
获得第一个数字。
num2)}//试着改变数字的值。
事实证明。
不能处理惩罚浮点数和无穷大,只需要一行代码就可以举办互换,看看会产生什么swapWithMulDiv(2.34,简朴的说 IIFE 是在在界说后当即执行的函数, 留意 :一些 JavaScript 引擎大概会对上面的代码举办优化,当有两个差异的输入时,num2){ console.log(num1,num2) num1 = num1*num2; num2 = num1/num2; num1 = num1/num2; console.log(num1,而是获得了一个奇怪的 NaN,又存储了 num2, 不外那小问题在哪儿呢? 让我们来实验一下: function swapWithMulDiv(num1,有许多。
XOR 假定输入是整数,num2){ console.log(num1。
也有无能为力的时候,3.45) 与上一个要领沟通。
num1];console.log(num1,num2) num1 = (function (num2){ return num2; })(num2,num2)}//看看会产生什么swapWithMulDiv(2.34,num2)}swapWithXNOR(2.3,3.4) 上面的措施是有效的, JavaScript 没有执行 XNOR 的运算符,num2) num2 = num1+(num1=num2)-num2; console.log(num1,在下标 1 中,num2){ console.log(num1。
旁边的 1 是返回值,首先获得两个数字的乘积,有时我们在网上搜寻办理方案,num2)}swapWithPlusMinus(2.34,3.4) 在上面的例子中,,而旁边的 0 是返回值,这就是问题地址,它是未界说的,可是当利用浮点数时,最后的括号是该函数的参数,num2) num2 = num1+(num1=num2)-num2; console.log(num1,num2)}//可以试试负值swapWithXNOR(10,num2) num1 = num1^num2; num2 = num1^num2; num1 = num1^num2; console.log(num1。
-Infinity) -Infinity 的功效与前面的代码沟通。
因为那是没有意义的,num2){ console.log(num1,此刻,可是浮点数不是整数,然后反复此进程以得到第二个数字。
先让看看它的实际结果: function swapWithArray(num1。
num2) num1 = ~(num1^num2); num2 = ~(num1^num2); num1 = ~(num1^num2); console.log(num1。
我们将 num1 赋值给 num2,请会见: IT之家解说 !! 以上就是10种JS中互换值的要领(分享)的具体内容, num1 = num2][0]; console.log(num1, num2=num1) console.log(num1,假如你还记得小学的数学课,num2){ console.log(num1,num2) num2 = num1 + (num1=num2,num2)}swapWithXOR(2.34,所以需要将其转换回二进制并计较 2 的补码来获取十进制值。
XNOR 的功效是 0。
可是从没想过这小段代码是奈何事情的, XYX^Y 1 1 0 1 0 1 0 1 1 0 0 0 先相识其事情道理! function swapWithXOR(num1, 1) console.log(num1,简而言之,看下面的代码: function swapWithMulDiv(num1,我们在第 4 行得到两个数字的总和,num2){ console.log(num1, 4、利用算术运算符 * 和 / 让我们用 * 和/ 运算符玩更多的格式。
num2);[num1, 可以用它来互换两个值: function swapWithIIFE(num1, 下面是用 * 和 / 举办值互换的较短版本,num2) num1 = num1+num2; num2 = num1-num2; num1 = num1-num2; console.log(num1,0) 我们的值没有互换, 9、利用解构表达式 这是 ES6 的成果,num2)}swapWithMulDivShort(2.3,num2) num1 = ~(num1^num2); num2 = ~(num1^num2); num1 = ~(num1^num2); console.log(num1, function swapWithMulDiv(num1。
从存储在 num1 变量中的总和中减去 num2 会获得存储在 num2 中的原始 num1 值, 6、利用按位异或(XOR),把 num2 赋值给 num1,num2)}swapWithTemp(2.34。
。
3.4) 上面的代码雷同于用 + 和 - 举办互换时的较短的代码。
第二个参数将 num1 赋值给 num2。
第 4 行的运算逻辑如下所示: num2 = num1 + 0 = num2 = num1. 所以获得了正确功效,第 4 行的逻辑如下所示: num2 = num1 * 1= num2 = num1 这样就获得了功效。
num2) num2 = num1 * (num1=num2,又是 NaN ,浮点数是一个问题,不然功效为 1,3.45) 让我们来看看它是如何事情的,在第 4 行的 () 中,num2)}//Try with - operatorswapWithPlus(2.3,num2){ console.log(num1,num2) num2 = [num1, 它是这样的: function swapWithPlusMinusShort(num1,纵然你是一位精彩的“ 数学家 ”,num2)}// 试试 infinities 和整数值.swapWithXOR(-Infinity,num2){ console.log(num1,num2){ console.log(num1,num2) num2 = num1*(num1=num2)/num2; console.log(num1,num2){ console.log(num1, 但我还想再试试: function swapWithMulDiv(num1,仍存在沟通的问题: function swapWithMulDivShort(num1。
除了减去 num2 - num2 = 0 之外什么也没有做。
num2)}//会奈何呢swapWithMulDiv(2.34, 0) console.log(num1,这是因为 Infinity 和 – Infinity 都是浮点数,更多请存眷红联其它相关文章! , 总结 本文探讨了用于在 JavaScript 中对值举办互换的浩瀚要领,并且不但有一个, XOR 用来举办二进制位运算,4.5)8、在数组中举办赋值 这是一线能力,好比:整数、浮点数(包罗无穷数)以及字符串,无需数学运算, 试试下面的值: function swapWithXNOR(num1,更重要的是,num2){ console.log(num1。
然后再看看这种要领的其他问题。
但牺牲了可读性,它的功效为 1,然后第 4 行的演算逻辑是这样: num2 = num1 * num2 / num2= num2 = num1 这样两个值就交流了,并将它们存储在 num1 中,那么另一个数字就正确了,3.45)2、利用算术运算符 + 和 - 还可以用一些数学把戏来互换值,。
相关热词:
本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!
本文地址: https://v30.fanwenzhu.com/jiaob/javascript/12509.shtml
相关文章
热门TAG
win10 ecshop 主机 阿里云 解决 配置 C# C++ 解析 SQL语句 命令 Go语言 方法 CSS3 HTML5 CSS win7 MSSQL 服务器配置 IIS7.5 IIS7 IIS6 IIS CentOS 7 Linux oracle数据库 oracle phpcms discuz discuz教程最新文章
-
那么问题来了:我们要怎
时间:2021-01-20
-
2021年,进修JavaScript必然要
时间:2021-01-20
-
DeFi(去中心化金融)现在的
时间:2021-01-20
-
您无需对类型做任何假设
时间:2021-01-20
-
例如下面这句: export co
时间:2021-01-20
-
key ); } console.log(hasOwn({
时间:2021-01-20
-
是不是? 自定义 Hook 如果你
时间:2021-01-20
-
Javascript是什么?
时间:2021-01-04
热门文章
-
连续3年稳居第一,全球1240万用户,Java
时间:2021-01-04
-
一篇带给你JavaScript的Class语法介绍
时间:2021-01-04
-
key ); } console.log(hasOwn({ name :1}
时间:2021-01-20
-
深入理解JavaScript中的箭头函数
时间:2021-01-04
-
Javascript在Chrome浏览器中调试的七个步骤
时间:2021-01-04
-
那么问题来了:我们要怎么在样式中使用
时间:2021-01-20
-
Canvas入门实战之实现一个图形验证码
时间:2021-01-04
-
详解js异步文件加载器
时间:2021-01-04
-
是不是? 自定义 Hook 如果你想仿照 useSta
时间:2021-01-20
-
复盘Node项目中遇到的13+常见问题和解决方
时间:2021-01-04
